Configuration du serveur EMu

Cette section décrit la configuration du serveur EMu requise pour utiliser OpenID Connect.

Comptes d’utilisateurs

Les détails du compte utilisateur étant gérés par le prestataire d’identité, aucun compte utilisateur Unix côté serveur n’est nécessaire pour utiliser OIDC. Le compte d’utilisateur emu est toutefois toujours nécessaire pour l’administration côté serveur.

Si les fichiers Unix traditionnels passwd ou shadow sont utilisés pour l’authentification de l’utilisateur côté serveur emu, il ne devrait pas être nécessaire d’installer les bibliothèques Pluggable Authentication Module (PAM) requises pour prendre en charge d’autres méthodes d’authentification telles que Lightweight Directory Access Protocol (LDAP) ou Active Directory (AD).

Configuration du prestataire d’identité

Une entrée pour chaque prestataire d’identité doit être ajoutée au fichier de configuration de Texpress $TEXHOME/etc/openid/providers. Le fichier providers doit être formaté comme une collection JavaScript Object Notation (JSON). Chaque élément de la collection est un objet qui représente un seul prestataire d’identité. Les éléments d’objet suivants doivent être spécifiés pour chaque prestataire :

Élément

Exigence

Détails

name

Optionnel

Spécifie le titre utilisé pour identifier l’entrée. Peut être n’importe quelle valeur mais doit identifier le prestataire. Par exemple :

Prestataire d’identité Azure pour EMu

discovery

Optionnel

Spécifie la valeur OpenID Connect metadata document obtenue à partir de l’Enregistrement de la demande du prestataire d’identité. Par exemple :

https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000/v2.0/.well-known/openid-configuration

Si cette valeur n’est pas fournie, vous devez fournir un élément jwks_uri.

client_id

Obligatoire

Spécifie la valeur Application (client) ID obtenue à partir de l’Enregistrement de la demande du prestataire d’identité. Par exemple :

11111111-1111-1111-1111-111111111111

issuer

Obligatoire

Confirmez l’émetteur (c.-à-d. le prestataire d’identification) des jetons d’identification transmis au serveur. Par exemple :

https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000/v2.0

Cette valeur peut être extraite de OpenID Connect metadata document. Par exemple, pour ouvrir le document de métadonnées et extraire la valeur issuer :

$ curl --silent ’https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000/v2.0/.well-known/openid-configuration’| jq ’.issuer’"https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000/v2.0"

Note: L’utilitaire jq est un processeur en ligne de commande pour les documents JSON. S’il n’est pas disponible, vous pouvez simplement extraire la valeur issuer manuellement.

jwksfile

Obligatoire

Indiquez le nom du fichier utilisé par le serveur pour mettre en cache les données de découverte téléchargées. Il peut s’agir de n’importe quelle valeur, mais elle doit être différente de celle des autres prestataires jwksfile. Par exemple :

azure.jwks

jwks_uri

Optionnel

Utilisé pour la vérification du jeton lorsqu’une valeur discovery n’est pas fournie.

Note: Vous trouverez de plus amples informations dans le fichier $TEXHOME/etc/openid/README.

Configuration du nom d’utilisateur

Le nom d’utilisateur attribué par le prestataire d’identité via OIDC est probablement l’adresse e-mail de l’utilisateur et doit correspondre au nom d’utilisateur côté serveur spécifié dans le Registre EMu.

Ceci n’est pas un problème pour les nouveaux utilisateurs ou les nouvelles installations mais peut être problématique pour les utilisateurs existants, car le nom d’utilisateur déjà spécifié dans le Registre EMu peut ne pas correspondre au nom d’utilisateur attribué par le prestataire d’identité.

Ce problème peut être résolu en utilisant la fonction Texpress Username Map, qui permet de faire correspondre un nom d’utilisateur OpenID à un autre nom d’utilisateur.

Cette fonction vous permet de changer le nom d’utilisateur attribué par le prestataire d’identité en un autre nom d’utilisateur après une autorisation réussie via OpenID Connect. Cette fonction est surtout utile pour faire correspondre un nom d’utilisateur OpenID au nom d’utilisateur d’un utilisateur déjà existant.

Attention

Il ne devrait pas être nécessaire d’utiliser la fonction Username Map pour les nouveaux utilisateurs ou les nouvelles installations d’EMu.

Les avantages de cette approche sont les suivants :

  1. Les entrées de Registre existantes de l’utilisateur n’ont pas besoin d’être mises à jour.
  2. Étant donné que le nom d’utilisateur non-OpenID des utilisateurs existants sera présent dans le système (par exemple dans les valeurs de la colonne Sécurité au niveau de l’enregistrement, éventuellement dans les valeurs de la colonne Inséré/Modifié par et la valeur de la colonne Utilisateur du module Audit), le système ne comportera pas deux noms d’utilisateur différents pour le même utilisateur.

Le Username Map est spécifié dans le fichier $TEXHOME/etc/openid/usermap. Chaque plan est spécifié sur une seule ligne et doit être formaté comme suit :

<nom d’utilisateur OpenID> <nom d’utilisateur> <nom complet optionnel>

Par exemple, la ligne suivante est utilisée pour mapper le nom d’utilisateur OpenID Charlie.Brown@peanuts.com au nom d’utilisateur existant charlieb :

Charlie.Brown@peanuts.com charlieb

Note

Le nom d’utilisateur existant (par exemple charlieb ci-dessus) ne doit pas nécessairement être un nom d’utilisateur Unix valide, c’est-à-dire qu’il ne doit pas nécessairement y avoir un compte Unix spécifié pour cet utilisateur sur le serveur EMu.

Vous trouverez de plus amples informations dans le fichier $TEXHOME/etc/openid/usermap.